QD55 - ÅgÉÇÉjÉ^ÅïÉTÉEÉìÉhÅhÉRÉìÉgÉçÅ[ÉãÉpÉlÉãÇ…ï\é¶Ç≥ÇÍÇÈÉÇÉjÉ^Å[ ID ÇÃéÊìæï˚ñ@(98 îN 1 åé 16 ì˙)
Q:
ÉfÉBÉXÉvÉåÉCÅEÉ}ÉlÅ[ÉWÉÉÇà DMGetDisplayIDByGDevice() ÉRÅ[ÉãÇégǡǃÅAÉÜÅ[ÉUÇ™ÅgIdentify MonitorsÅhÉ{É^ÉìÇÉNÉäÉbÉNǵÇΩÇΔÇ´Ç…ÅgÉÇÉjÉ^ÅïÉTÉEÉìÉhÅhÉRÉìÉgÉçÅ[ÉãÉpÉlÉãÇ…ï\é¶Ç≥ÇÍÇÈÉÇÉjÉ^Å[ ID ÇéÊìæÇµÇÊǧÇΔévǡǃǢNjÇ∑ÅBÇΔDZÇÎÇ™ÅADMGetDisplayIDByGDevice() ÇÕDZÇÃílÇï‘Ç≥ǻǢÇÊǧÇ≈Ç∑ÅBê≥ǵǢÉÇÉjÉ^Å[ ID î‘çÜÇéÊìæÇ∑ÇÈÇ…ÇÕǫǧǵÇΩÇÁÇÊÇ¢Ç≈ǵÇÂǧÅB
A:
Display Manager ÇÃÉ}ÉjÉÖÉAÉãÇ…ãLç⁄ÇÕǻǢǙÅADisplays.h ÉtÉ@ÉCÉãÇ≈íËã`Ç≥ÇÍǃǢÇÈÉRÅ[ÉãǙdžÇËÅAǪÇÍÇégǢNjÇ∑ÅBÇ‹Ç∏ÅADMGetDisplayIDByGDevice Ç≈ displayID ÇéÊìæÇµÅADMGetNameByAVID DžǪÇà displayID ÇìnǵǃÉfÉoÉCÉXÇÃÅuñºëOÅvÇéÊìæÇ∑ÇÈÅAÇΔǢǧLJÇÃÇ≈Ç∑ÅBDZDZÇ≈ÉfÉoÉCÉXÇÃÅuñºëOÅvÇΔǢǡǃǢÇÈÇÃÇÕÅAÇ¢ÇÌljÇÈÉfÉoÉCÉXñº (ó·Ç¶ÇŒÅuMultiple Scan DisplayÅv) ÇΔÉfÉoÉCÉXî‘çÜ (ó·Ç¶ÇŒÅu1Åv) ÇçáÇÌÇπÇΩï∂éöóÒÇ≈Ç∑ÅBÉfÉoÉCÉXî‘çÜÇÕÅgÉÇÉjÉ^ÅïÉTÉEÉìÉhÅhÉRÉìÉgÉçÅ[ÉãÉpÉlÉãÇ…ï\é¶Ç≥ÇÍÇÈî‘çÜÇ≈Ç∑ÅBÉfÉoÉCÉXî‘çÜÅAǬNjÇËÉÇÉjÉ^Å[ ID ÇæÇØÇéÊìæÇ∑ÇÈÇ…ÇÕÅAÉfÉoÉCÉXÇÃñºëOÇÃäYìñïîï™ÇÃÉ}ÉXÉNÇéwíËǵǃéÊÇËèoǵǃÇ≠ÇæÇ≥Ç¢ÅBó·Ç¶ÇŒÅAéüÇÃÇÊǧDžǻÇËÇ‹Ç∑ÅB
err = DMGetDisplayIDByGDevice(gd, &displayID, false);
err = DMGetNameByAVID(displayID, kSuppressNameMask + kForceNumberMask, &theStr);
DZÇÍÇÁÇÃÉRÅ[ÉãÇ™égópÇ≈Ç´ÇÈÇÃÇÕ Display Manager 2.0 Ç≈Ç∑ÇÃÇ≈ÅAíçà”ǵǃÇ≠ÇæÇ≥Ç¢ÅBDisplay Manager 1.0 ÇÃÉVÉXÉeÉÄÇ≈DZÇÍÇÁÇÃÉRÅ[ÉãÇégǧDžÇÕÅADisplay Enabler Ç™ÉCÉìÉXÉgÅ[ÉãÇ≥ÇÍǃǢÇÈDZÇΔÇ™ïKóvÇ≈Ç∑ÅBDisplay Enabler ÇÕ Display Manager SDK Ç…ä‹Ç‹ÇÍǃǢNjÇ∑ÅBDisplay Manager SDK ÇÕDZÇÃÉTÉCÉgÇ©ÅAMacOS SDK CD DždžÇËÇ‹Ç∑ÅB
DMGetNameByAVID DžǬǢǃLJǧè≠ǵè⁄ǵÇ≠ê‡ñæÇµÇ‹Ç∑ÅBímÇËÇΩÇ¢ÉfÉoÉCÉXÇÃÅuñºëOÅvÇ‚ÉfÉoÉCÉXî‘çÜÇæÇØÅAdžÇÈÇ¢ÇÕóºï˚Çí≤Ç◊ÇÈÇ…ÇÕÅADMGetNameByAVID ä÷êîÇégǡǃÇ≠ÇæÇ≥Ç¢ÅB
extern pascal OSErr DMGetNameByAVID
(AVIDType theID, unsigned long nameFlags, Str255 *name)
theID: |
AVIDType ÇÕÉ|Å[ÉgÇΔÉfÉoÉCÉXÇï\Ç∑ ID Ç≈Ç∑ÅBå›ä∑ê´ÇÃÇΩÇflãåóàÇà Display ID É^ÉCÉvÇ™égópÇ≥ÇÍǃǢNjÇ∑ÅBäÓñ{ìIÇ…ÅAtheID ÇÕÅAGDevice ÉåÉRÅ[ÉhÇéÊìæÇµÇΩÇ¢ÉrÉfÉIÉfÉoÉCÉXÇà displayID ÇÃDZÇΔÇ≈Ç∑ÅB |
nameFlags: | enum {
/* nameFlags ÇÃÉrÉbÉg */
kSuppressNumberBit = 0,
kSuppressNumberMask = 1,
kForceNumberBit = 1,
kForceNumberMask = 2,
kSuppressNameBit = 2,
kSuppressNameMask = 4
}; |
*name: |
*name ÇÕÉfÉoÉCÉXñº (ó·Ç¶ÇŒÅuMultiple Scan DisplayÅv) ÇΔÉfÉoÉCÉXî‘çÜÇä‹Çfiï∂éöóÒÇ≈Ç∑ÅBÉfÉoÉCÉXî‘çÜÇÕǪÇÃÉfÉoÉCÉXÇ™ÉfÉoÉCÉXÅEÉcÉäÅ[Ç…åªÇÍÇÈèáî‘Ç≈Ç∑ÅB |
ÅuñºëOÅvÇÃàÍïîÇéÊìæÇµÇΩÇ¢èÍçáÇ…ÇÕÅAnameFlags ÉpÉâÉÅÅ[É^ÇégǡǃÇ≠ÇæÇ≥Ç¢ÅB
ñºëOÇæÇØ (ó·Ç¶ÇŒÅuMultiple Scan DisplayÅv) ÇéÊìæÇ∑ÇÈÇ…ÇÕÅAnameFlags ÉpÉâÉÅÅ[É^Ç… kSuppressNumberMask ÉtÉâÉOÇégǡǃÇ≠ÇæÇ≥Ç¢ÅB
err = DMGetNameByAVID(displayID, kSuppressNumberMask, &nameStr);
î‘çÜÇæÇØÇéÊìæÇ∑ÇÈÇ…ÇÕÅAÉ}ÉXÉNÇ… kSuppressNameMask + kForceNumberMask ÇéwíËǵǃÇ≠ÇæÇ≥Ç¢ÅB
err = DMGetNameByAVID(displayID, kSuppressNameMask + kForceNumberMask, &numberStr);
ǪÇÃï∂éöóÒÇ©ÇÁñºëOÇΔî‘çÜÇÃóºï˚ÇéÊìæÇ∑ÇÈÇ…ÇÕÅAkForceNumberMask ÉtÉâÉOÇégǡǃÇ≠ÇæÇ≥Ç¢ÅB
err = DMGetNameByAVID(displayID, kForceNumberMask , &nameStr);
-- ÉåÉeÉBÉVÉAÅEÉAÉâÅ[ÉRÉì
devsupport@apple.com
[ Technical Q&A's : Graphics & Media : QuickDraw : QD55 ]
|